Polarized Image and Instrumental Modeling
In this tutorial, we will analyze a simulated simple polarized dataset to demonstrate Comrade's polarized imaging capabilities.
Introduction to Polarized Imaging
The EHT is a polarized interferometer. However, like all VLBI interferometers, it does not directly measure the Stokes parameters (I, Q, U, V). Instead, it measures components related to the electric field at the telescope along two directions using feeds. There are two types of feeds at telescopes: circular, which measure $R/L$ components of the electric field, and linear feeds, which measure $X/Y$ components of the electric field. Most sites in the EHT use circular feeds, meaning they measure the right (R) and left electric field (L) at each telescope. These circular electric field measurements are then correlated, producing coherency matrices,
\[ C_{ij} = \begin{pmatrix} RR^* & RL^*\\ LR^* & LL^* \end{pmatrix}.\]
These coherency matrices are the fundamental object in interferometry and what the telescope observes. For a perfect interferometer, these coherency matrices are related to the usual Fourier transform of the stokes parameters by
\[ \begin{pmatrix} \tilde{I}\\ \tilde{Q} \\ \tilde{U} \\ \tilde{V} \end{pmatrix} =\frac{1}{2} \begin{pmatrix} RR^* + LL^* \\ RL^* + LR^* \\ i(LR^* - RL^*)\\ RR^* - LL^* \end{pmatrix},\]
for circularly polarized measurements.
In this tutorial, we stick to circular feeds but Comrade has the capabilities to model linear (XX,XY, ...) and mixed basis coherencies (e.g., RX, RY, ...).
In reality, the measure coherencies are corrupted by both the atmosphere and the telescope itself. In Comrade we use the RIME formalism [1] to represent these corruptions, namely our measured coherency matrices $V_{ij}$ are given by
\[ V_{ij} = J_iC_{ij}J_j^\dagger\]
where $J$ is known as a Jones matrix and $ij$ denotes the baseline $ij$ with sites $i$ and $j$.
Comrade is highly flexible with how the Jones matrices are formed and provides several convenience functions that parameterize standard Jones matrices. These matrices include:
jonesGwhich builds the set of complex gain Jones matrices
\[ G = \begin{pmatrix} g_a &0\\ 0 &g_b\\ \end{pmatrix}\]
jonesDwhich builds the set of complex d-terms Jones matrices
\[ D = \begin{pmatrix} 1 & d_a\\ d_b &1\\ \end{pmatrix}\]
jonesTis the basis transform matrix $T$. This transformation is special and combines two things using the decomposition $T=FB$. The first, $B$, is the transformation from some reference basis to the observed coherency basis (this allows for mixed basis measurements). The second is the feed rotation, $F$, that transforms from some reference axis to the axis of the telescope as the source moves in the sky. The feed rotation matrixFin terms of the per station feed rotation angle $\varphi$ is
\[ F = \begin{pmatrix} e^{-i\varphi} & 0\\ 0 & e^{i\varphi}\\ \end{pmatrix}\]
In the rest of the tutorial, we are going to solve for all of these instrument model terms on in addition to our image structure to reconstruct a polarized image of a synthetic dataset.
Load the Data
To get started we will load Comrade
using ComradeLoad the Data
using Pyehtim Activating project at `~/work/Comrade.jl/Comrade.jl/examples`For reproducibility we use a stable random number genreator
using StableRNGs
rng = StableRNG(125)StableRNGs.LehmerRNG(state=0x000000000000000000000000000000fb)Now we will load some synthetic polarized data.
obs = Pyehtim.load_uvfits_and_array(joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/polarized_gaussian_all_corruptions.uvfits"),
joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/array.txt"), polrep="circ")Python: <ehtim.obsdata.Obsdata object at 0x7fcf3216a4d0>Notice that, unlike other non-polarized tutorials, we need to include a second argument. This is the array file of the observation and is required to determine the feed rotation of the array.
Now we scan average the data since the data to boost the SNR and reduce the total data volume.
obs = scan_average(obs)Python: <ehtim.obsdata.Obsdata object at 0x7fcf7f317c10>Now we extract our observed/corrupted coherency matrices.
dvis = extract_table(obs, Coherencies())EHTObservation{Float64,Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, ...}
source: 17.761122472222223:-28.992189444444445
mjd: 51544
frequency: 2.3e11
bandwidth: 1.0e9
stations: [:AA, :AP, :AZ, :JC, :LM, :PV, :SM]
nsamples: 315
##Building the Model/Posterior
To build the model, we first break it down into two parts:
- The image or sky model. In Comrade, all polarized image models are written in terms of the Stokes parameters. The reason for using Stokes parameters is that it is usually what physical models consider and is the often easiest to reason about since they are additive. In this tutorial, we will use a polarized image model based on Pesce (2021)[2]. This model parameterizes the polarized image in terms of the
Poincare sphere, and allows us to easily incorporate physical restrictions such as $I^2 ≥ Q^2 + U^2 + V^2$. - The instrument model. The instrument model specifies the model that describes the impact of instrumental and atmospheric effects. We will be using the $J = GDT$ decomposition we described above. However, to parameterize the R/L complex gains, we will be using a gain product and ratio decomposition. The reason for this decomposition is that in realistic measurements, the gain ratios and products have different temporal characteristics. Namely, many of the EHT observations tend to demonstrate constant R/L gain ratios across an nights observations, compared to the gain products, which vary every scan. Additionally, the gain ratios tend to be smaller (i.e., closer to unity) than the gain products. Using this apriori knowledge, we can build this into our model and reduce the total number of parameters we need to model.
function sky(θ, metadata)
(;c, f, p, angparams) = θ
(;K, grid, cache) = metadata
# Construct the image model
# produce Stokes images from parameters
imgI = f*K(c)
# Converts from poincare sphere parameterization of polzarization to Stokes Parameters
pimg = PoincareSphere2Map(imgI, p, angparams, grid)
m = ContinuousImage(pimg, cache)
return m
endsky (generic function with 1 method)If you want to add a geometric polarized model please see the PolarizedModel docstring. For instance to create a stokes I only Gaussian component to the above model we can do pg = PolarizedModel(modify(Gaussian(), Stretch(1e-10)), ZeroModel(), ZeroModel(), ZeroModel()).
function instrument(θ, metadata)
(; lgp, gpp, lgr, gpr, dRx, dRy, dLx, dLy) = θ
(; tcache, scancache, phasecache, trackcache) = metadata
# Now construct the basis transformation cache
jT = jonesT(tcache)
# Gain product parameters
gPa = exp.(lgp)
gRa = exp.(lgp .+ lgr)
Gp = jonesG(gPa, gRa, scancache)
# Gain ratio
gPp = exp.(1im.*(gpp))
gRp = exp.(1im.*(gpp.+gpr))
Gr = jonesG(gPp, gRp, phasecache)
##D-terms
D = jonesD(complex.(dRx, dRy), complex.(dLx, dLy), trackcache)
# sandwich all the jones matrices together
J = Gp*Gr*D*jT
# form the complete Jones or RIME model. We use tcache here
# to set the reference basis of the model.
return JonesModel(J, tcache)
endinstrument (generic function with 1 method)Now, we define the model metadata required to build the model. We specify our image grid and cache model needed to define the polarimetric image model.
fovx = μas2rad(50.0)
fovy = μas2rad(50.0)
nx = 6
ny = floor(Int, fovy/fovx*nx)
grid = imagepixels(fovx, fovy, nx, ny) # image grid
buffer = IntensityMap(zeros(nx, ny), grid) # buffer to store temporary image
pulse = BSplinePulse{3}() # pulse we will be using
cache = create_cache(NFFTAlg(dvis), buffer, pulse) # cache to define the NFFT transformVLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}(VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}(NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}(1, 4, 2.0, :kaiser_bessel, AbstractNFFTs.POLYNOMIAL, true, false, true, 0x00000000), [59827.55078125 60351.01953125 … 57731.1796875 59075.01171875; -91918.53125 -94468.7265625 … -87413.2578125 -89891.890625]), NFFTPlan with 315 sampling points for an input array of size(6, 6) and an output array of size(315,) with dims 1:2, ComplexF64[0.9999999998625229 - 4.073113194802683e-6im, 0.9999999998556613 - 4.330353284776288e-6im, 0.999999999848886 - 4.647785062942295e-6im, 0.9999999998421939 - 5.022980613439945e-6im, 0.9999999998355636 - 5.453067290874904e-6im, 0.9999999998289592 - 5.934756476520983e-6im, 0.9999999676482585 - 7.961715452053948e-5im, 0.27309831373929383 - 0.5602181272057013im, 0.27318080222812635 - 0.5602741916648575im, 0.9999999660126188 - 8.078898742751225e-5im … 0.8626296582058255 + 0.31333693399431im, 0.799618552884296 - 0.26698271796155876im, 0.9999999999078099 - 4.019407021873448e-6im, 0.7996150212461651 + 0.26697800124674226im, 0.999999999901871 - 3.839833962147681e-6im, 0.9999999998955054 - 3.7242062665396272e-6im, 0.9999999998888406 - 3.6734094277433153e-6im, 0.9999999998819885 - 3.687833141870991e-6im, 0.9999999998750453 - 3.7673658546908245e-6im, 0.9999999998680867 - 3.911399223796198e-6im], BSplinePulse{3}(), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0])Finally we compute a center projector that forces the centroid to live at the image origin
using VLBIImagePriors
K = CenterImage(grid)
skymeta = (;K, cache, grid)(K = VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}([0.8809523809523814 -0.09523809523809522 … 0.0952380952380952 0.11904761904761897; -0.09523809523809522 0.9190476190476192 … 0.08095238095238094 0.09523809523809523; … ; 0.0952380952380952 0.08095238095238094 … 0.9190476190476189 -0.09523809523809526; 0.11904761904761897 0.09523809523809523 … -0.09523809523809526 0.880952380952381], (6, 6)), cache = VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}(VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}(NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}(1, 4, 2.0, :kaiser_bessel, AbstractNFFTs.POLYNOMIAL, true, false, true, 0x00000000), [59827.55078125 60351.01953125 … 57731.1796875 59075.01171875; -91918.53125 -94468.7265625 … -87413.2578125 -89891.890625]), NFFTPlan with 315 sampling points for an input array of size(6, 6) and an output array of size(315,) with dims 1:2, ComplexF64[0.9999999998625229 - 4.073113194802683e-6im, 0.9999999998556613 - 4.330353284776288e-6im, 0.999999999848886 - 4.647785062942295e-6im, 0.9999999998421939 - 5.022980613439945e-6im, 0.9999999998355636 - 5.453067290874904e-6im, 0.9999999998289592 - 5.934756476520983e-6im, 0.9999999676482585 - 7.961715452053948e-5im, 0.27309831373929383 - 0.5602181272057013im, 0.27318080222812635 - 0.5602741916648575im, 0.9999999660126188 - 8.078898742751225e-5im … 0.8626296582058255 + 0.31333693399431im, 0.799618552884296 - 0.26698271796155876im, 0.9999999999078099 - 4.019407021873448e-6im, 0.7996150212461651 + 0.26697800124674226im, 0.999999999901871 - 3.839833962147681e-6im, 0.9999999998955054 - 3.7242062665396272e-6im, 0.9999999998888406 - 3.6734094277433153e-6im, 0.9999999998819885 - 3.687833141870991e-6im, 0.9999999998750453 - 3.7673658546908245e-6im, 0.9999999998680867 - 3.911399223796198e-6im], BSplinePulse{3}(), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0]), grid = GriddedKeys{(:X, :Y)}
X: LinRange{Float64}(-1.0100285023115333e-10, 1.0100285023115333e-10, 6)
Y: LinRange{Float64}(-1.0100285023115333e-10, 1.0100285023115333e-10, 6)
)To define the instrument models, $T$, $G$, $D$, we need to build some Jones caches (see JonesCache) that map from a flat vector of gain/dterms to the specific sites for each baseline.
First, we will define our deterministic transform cache. Note that this dataset has need been pre-corrected for feed rotation, so we need to add those into the tcache.
tcache = ResponseCache(dvis; add_fr=true, ehtim_fr_convention=false)ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}(StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.7478621394217324 - 0.6638540656044438im 0.0 + 0.0im; 0.0 + 0.0im 0.7478621394217324 + 0.6638540656044438im], [0.6986903559889313 - 0.7154242003511347im 0.0 + 0.0im; 0.0 + 0.0im 0.6986903559889313 + 0.7154242003511347im], [0.6501178560836027 - 0.7598333851583912im 0.0 + 0.0im; 0.0 + 0.0im 0.6501178560836027 + 0.7598333851583912im], [0.6026809304860022 - 0.7979822654849709im 0.0 + 0.0im; 0.0 + 0.0im 0.6026809304860022 + 0.7979822654849709im], [0.5566871572570637 - 0.8307222212900346im 0.0 + 0.0im; 0.0 + 0.0im 0.5566871572570637 + 0.8307222212900346im], [0.5122745076442827 - 0.8588217677829363im 0.0 + 0.0im; 0.0 + 0.0im 0.5122745076442827 + 0.8588217677829363im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [-0.3037162170116636 + 0.9527625409954592im 0.0 + 0.0im; 0.0 + 0.0im -0.3037162170116636 - 0.9527625409954592im] … [0.5922345549348089 - 0.8057656184903702im 0.0 + 0.0im; 0.0 + 0.0im 0.5922345549348089 + 0.8057656184903702im], [0.9962544755535179 - 0.08646976315212813im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212813im], [0.9962544755535179 - 0.08646976315212813im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212813im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9811288230995521 - 0.19335519771469237im 0.0 + 0.0im; 0.0 + 0.0im 0.9811288230995521 + 0.19335519771469237im], [0.9555317155822731 - 0.29488835262925855im 0.0 + 0.0im; 0.0 + 0.0im 0.9555317155822731 + 0.29488835262925855im], [0.9212728138493556 - 0.38891696088251376im 0.0 + 0.0im; 0.0 + 0.0im 0.9212728138493556 + 0.38891696088251376im], [0.880457707962253 - 0.47412469297628446im 0.0 + 0.0im; 0.0 + 0.0im 0.880457707962253 + 0.47412469297628446im], [0.8351706623098257 - 0.5499908770306713im 0.0 + 0.0im; 0.0 + 0.0im 0.8351706623098257 + 0.5499908770306713im], [0.7872511092491687 - 0.6166325412966407im 0.0 + 0.0im; 0.0 + 0.0im 0.7872511092491687 + 0.6166325412966407im]], StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.5359655747144974 - 0.8442398372032431im 0.0 + 0.0im; 0.0 + 0.0im 0.5359655747144974 + 0.8442398372032431im], [0.427340188551606 - 0.9040909043059099im 0.0 + 0.0im; 0.0 + 0.0im 0.427340188551606 + 0.9040909043059099im], [0.31382959047743225 - 0.9494793247568728im 0.0 + 0.0im; 0.0 + 0.0im 0.31382959047743225 + 0.9494793247568728im], [0.19738268777901177 - 0.9803265142620254im 0.0 + 0.0im; 0.0 + 0.0im 0.19738268777901177 + 0.9803265142620254im], [0.07977737741150931 - 0.996812705603887im 0.0 + 0.0im; 0.0 + 0.0im 0.07977737741150931 + 0.996812705603887im], [-0.03737546295386217 - 0.9993012932889582im -0.0 + 0.0im; -0.0 + 0.0im -0.03737546295386217 + 0.9993012932889582im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [-0.029176930515361358 + 0.9995742627367422im 0.0 + 0.0im; 0.0 + 0.0im -0.029176930515361358 - 0.9995742627367422im] … [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.9631304113729374 - 0.2690349618332093im 0.0 + 0.0im; 0.0 + 0.0im 0.9631304113729374 + 0.2690349618332093im], [0.9226606490274738 - 0.38561292345589354im 0.0 + 0.0im; 0.0 + 0.0im 0.9226606490274738 + 0.38561292345589354im], [0.8667200798347219 - 0.49879485082676367im 0.0 + 0.0im; 0.0 + 0.0im 0.8667200798347219 + 0.49879485082676367im], [0.7962012235336293 - 0.6050319096077095im 0.0 + 0.0im; 0.0 + 0.0im 0.7962012235336293 + 0.6050319096077095im], [0.7127118166097025 - 0.7014569598092941im 0.0 + 0.0im; 0.0 + 0.0im 0.7127118166097025 + 0.7014569598092941im], [0.6182781975747921 - 0.7859593312657255im 0.0 + 0.0im; 0.0 + 0.0im 0.6182781975747921 + 0.7859593312657255im]], CirBasis())Next we define our cache that maps quantities e.g., gain products, that change from scan-to-scan.
scancache = jonescache(dvis, ScanSeg())JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))In addition we will assign a reference station. This is necessary for gain phases due to a trivial degeneracy being present. To do this we will select ALMA AA as the reference station as is standard in EHT analyses.
phase_segs = station_tuple(dvis, ScanSeg(); AA=FixedSeg(1.0 + 0.0im))
phasecache = jonescache(dvis, phase_segs)JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))Finally, we define our cache that maps quantities, e.g., gain ratios and d-terms, that are constant across a observation night, and we collect everything together.
trackcache = jonescache(dvis, TrackSeg())
instrumentmeta = (;tcache, scancache, trackcache, phasecache)(tcache = ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}(StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.7478621394217324 - 0.6638540656044438im 0.0 + 0.0im; 0.0 + 0.0im 0.7478621394217324 + 0.6638540656044438im], [0.6986903559889313 - 0.7154242003511347im 0.0 + 0.0im; 0.0 + 0.0im 0.6986903559889313 + 0.7154242003511347im], [0.6501178560836027 - 0.7598333851583912im 0.0 + 0.0im; 0.0 + 0.0im 0.6501178560836027 + 0.7598333851583912im], [0.6026809304860022 - 0.7979822654849709im 0.0 + 0.0im; 0.0 + 0.0im 0.6026809304860022 + 0.7979822654849709im], [0.5566871572570637 - 0.8307222212900346im 0.0 + 0.0im; 0.0 + 0.0im 0.5566871572570637 + 0.8307222212900346im], [0.5122745076442827 - 0.8588217677829363im 0.0 + 0.0im; 0.0 + 0.0im 0.5122745076442827 + 0.8588217677829363im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [-0.3037162170116636 + 0.9527625409954592im 0.0 + 0.0im; 0.0 + 0.0im -0.3037162170116636 - 0.9527625409954592im] … [0.5922345549348089 - 0.8057656184903702im 0.0 + 0.0im; 0.0 + 0.0im 0.5922345549348089 + 0.8057656184903702im], [0.9962544755535179 - 0.08646976315212813im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212813im], [0.9962544755535179 - 0.08646976315212813im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212813im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9811288230995521 - 0.19335519771469237im 0.0 + 0.0im; 0.0 + 0.0im 0.9811288230995521 + 0.19335519771469237im], [0.9555317155822731 - 0.29488835262925855im 0.0 + 0.0im; 0.0 + 0.0im 0.9555317155822731 + 0.29488835262925855im], [0.9212728138493556 - 0.38891696088251376im 0.0 + 0.0im; 0.0 + 0.0im 0.9212728138493556 + 0.38891696088251376im], [0.880457707962253 - 0.47412469297628446im 0.0 + 0.0im; 0.0 + 0.0im 0.880457707962253 + 0.47412469297628446im], [0.8351706623098257 - 0.5499908770306713im 0.0 + 0.0im; 0.0 + 0.0im 0.8351706623098257 + 0.5499908770306713im], [0.7872511092491687 - 0.6166325412966407im 0.0 + 0.0im; 0.0 + 0.0im 0.7872511092491687 + 0.6166325412966407im]], StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.5359655747144974 - 0.8442398372032431im 0.0 + 0.0im; 0.0 + 0.0im 0.5359655747144974 + 0.8442398372032431im], [0.427340188551606 - 0.9040909043059099im 0.0 + 0.0im; 0.0 + 0.0im 0.427340188551606 + 0.9040909043059099im], [0.31382959047743225 - 0.9494793247568728im 0.0 + 0.0im; 0.0 + 0.0im 0.31382959047743225 + 0.9494793247568728im], [0.19738268777901177 - 0.9803265142620254im 0.0 + 0.0im; 0.0 + 0.0im 0.19738268777901177 + 0.9803265142620254im], [0.07977737741150931 - 0.996812705603887im 0.0 + 0.0im; 0.0 + 0.0im 0.07977737741150931 + 0.996812705603887im], [-0.03737546295386217 - 0.9993012932889582im -0.0 + 0.0im; -0.0 + 0.0im -0.03737546295386217 + 0.9993012932889582im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [-0.029176930515361358 + 0.9995742627367422im 0.0 + 0.0im; 0.0 + 0.0im -0.029176930515361358 - 0.9995742627367422im] … [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.9882178952194864 - 0.15305355784158756im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158756im], [0.9631304113729374 - 0.2690349618332093im 0.0 + 0.0im; 0.0 + 0.0im 0.9631304113729374 + 0.2690349618332093im], [0.9226606490274738 - 0.38561292345589354im 0.0 + 0.0im; 0.0 + 0.0im 0.9226606490274738 + 0.38561292345589354im], [0.8667200798347219 - 0.49879485082676367im 0.0 + 0.0im; 0.0 + 0.0im 0.8667200798347219 + 0.49879485082676367im], [0.7962012235336293 - 0.6050319096077095im 0.0 + 0.0im; 0.0 + 0.0im 0.7962012235336293 + 0.6050319096077095im], [0.7127118166097025 - 0.7014569598092941im 0.0 + 0.0im; 0.0 + 0.0im 0.7127118166097025 + 0.7014569598092941im], [0.6182781975747921 - 0.7859593312657255im 0.0 + 0.0im; 0.0 + 0.0im 0.6182781975747921 + 0.7859593312657255im]], CirBasis()), scancache = JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49)), trackcache = JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49)), phasecache = JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49)))Moving onto our prior, we first focus on the instrument model priors. Each station gain requires its own prior on both the amplitudes and phases. For the amplitudes, we assume that the gains are apriori well calibrated around unit gains (or 0 log gain amplitudes) which corresponds to no instrument corruption. The gain dispersion is then set to 10% for all stations except LMT, representing that we expect 10% deviations from scan-to-scan. For LMT, we let the prior expand to 100% due to the known pointing issues LMT had in 2017.
using Distributions
using DistributionsAD
distamp = station_tuple(dvis, Normal(0.0, 0.1))(AA = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AP = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AZ = Distributions.Normal{Float64}(μ=0.0, σ=0.1), JC = Distributions.Normal{Float64}(μ=0.0, σ=0.1), LM = Distributions.Normal{Float64}(μ=0.0, σ=0.1), PV = Distributions.Normal{Float64}(μ=0.0, σ=0.1), SM = Distributions.Normal{Float64}(μ=0.0, σ=0.1))For the phases, we assume that the atmosphere effectively scrambles the gains. Since the gain phases are periodic, we also use broad von Mises priors for all stations. Notice that we don't assign a prior for AA since we have already fixed it.
distphase = station_tuple(dvis, DiagonalVonMises(0.0, inv(π^2)); reference=:AA)(AP = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), AZ = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), JC = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), LM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), PV = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), SM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688))However, we can now also use a little additional information about the phase offsets where in most cases, they are much better behaved than the products
distphase_ratio = station_tuple(dvis, DiagonalVonMises(0.0, inv(0.1)); reference=:AA)(AP = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), AZ = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), JC = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), LM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), PV = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), SM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588))Moving onto the d-terms, here we directly parameterize the real and complex components of the d-terms since they are expected to be complex numbers near the origin. To help enforce this smallness, a weakly informative Normal prior is used.
distD = station_tuple(dvis, Normal(0.0, 0.1))(AA = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AP = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AZ = Distributions.Normal{Float64}(μ=0.0, σ=0.1), JC = Distributions.Normal{Float64}(μ=0.0, σ=0.1), LM = Distributions.Normal{Float64}(μ=0.0, σ=0.1), PV = Distributions.Normal{Float64}(μ=0.0, σ=0.1), SM = Distributions.Normal{Float64}(μ=0.0, σ=0.1))Our image priors are:
- We use a Dirichlet prior,
ImageDirichlet, with unit concentration for our stokes I image pixels,c. - For the total polarization fraction,
p, we assume an uncorrelated uniform priorImageUniformfor each pixel. - To specify the orientation of the polarization,
angparams, on the Poincare sphere, we use a uniform spherical distribution,ImageSphericalUniform.
For all the calibration parameters, we use a helper function CalPrior which builds the prior given the named tuple of station priors and a JonesCache that specifies the segmentation scheme. For the gain products, we use the scancache, while for every other quantity, we use the trackcache.
prior = NamedDist(
c = ImageDirichlet(2.0, nx, ny),
f = Uniform(0.7, 1.2),
p = ImageUniform(nx, ny),
angparams = ImageSphericalUniform(nx, ny),
dRx = CalPrior(distD, trackcache),
dRy = CalPrior(distD, trackcache),
dLx = CalPrior(distD, trackcache),
dLy = CalPrior(distD, trackcache),
lgp = CalPrior(distamp, scancache),
gpp = CalPrior(distphase, phasecache),
lgr = CalPrior(distamp, scancache),
gpr = CalPrior(distphase,phasecache),
)VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
Putting it all together, we form our likelihood and posterior objects for optimization and sampling.
lklhd = RadioLikelihood(sky, instrument, dvis; skymeta, instrumentmeta)
post = Posterior(lklhd, prior)Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}(RadioLikelihood
Number of data products: 1
, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
)Reconstructing the Image and Instrument Effects
To sample from this posterior, it is convenient to move from our constrained parameter space to an unconstrained one (i.e., the support of the transformed posterior is (-∞, ∞)). This transformation is done using the asflat function.
tpost = asflat(post)Comrade.TransformedPosterior{Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}, TransformVariables.TransformTuple{NamedTuple{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageSimplex, TransformVariables.ScaledShiftedLogistic{Float64}, TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}, TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}}}}}(Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}(RadioLikelihood
Number of data products: 1
, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
), TransformVariables.TransformTuple{NamedTuple{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageSimplex, TransformVariables.ScaledShiftedLogistic{Float64}, TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}, TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}}}}((c = VLBIImagePriors.ImageSimplex(36, (6, 6)), f = as(Real, 0.7, 1.2), p = TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}(as(Real, 0.0, 1.0), (6, 6)), angparams = TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}(VLBIImagePriors.SphericalUnitVector{2}(), (6, 6)), dRx = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dRy = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dLx = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dLy = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), lgp = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (186,)), gpp = TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}(VLBIImagePriors.AngleTransform(), (150,)), lgr = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (186,)), gpr = TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}(VLBIImagePriors.AngleTransform(), (150,))), 1180))We can now also find the dimension of our posterior or the number of parameters we will sample.
This can often be different from what you would expect. This difference is especially true when using angular variables, where we often artificially increase the dimension of the parameter space to make sampling easier.
ndim = dimension(tpost)1180Now we optimize. Unlike other imaging examples, we move straight to gradient optimizers due to the higher dimension of the space.
using ComradeOptimization
using OptimizationOptimJL
using Zygote
f = OptimizationFunction(tpost, Optimization.AutoZygote())
ℓ = logdensityof(tpost)
prob = Optimization.OptimizationProblem(f, prior_sample(rng, tpost), nothing)
sol = solve(prob, LBFGS(), maxiters=15_000, g_tol=1e-1);Fitting polarized images is generally much harder than Stokes I imaging. This difficulty means that optimization can take a long time, and starting from a good starting location is often required.
Before we analyze our solution, we need to transform it back to parameter space.
xopt = transform(tpost, sol)(c = [7.1442635658271e-5 3.5978237059920366e-5 … 4.003219056050239e-5 3.13644361317243e-5; 6.083143304877631e-5 0.00012228859360437284 … 0.010121005429790516 0.0003369034894667128; … ; 5.263232968454417e-5 0.02147170780957655 … 0.0006427957573622667 0.00010120353813728957; 0.0002137316690065755 0.00014942154198065676 … 3.6289115545838696e-5 9.771519464432212e-6], f = 1.1938391282062089, p = [0.9641392917489557 0.9894944542749163 … 0.9836237512853343 0.6188599373156054; 0.9860405390304675 0.9246151734949261 … 0.03920147503719146 0.9633718283663216; … ; 0.02777489286341776 0.17938363251089146 … 0.9802462153447127 0.9869263294952014; 0.1264047827024577 0.9388973969666345 … 0.9963837975963484 0.9970004496663813], angparams = ([-0.2625352900444875 0.8870470810288151 … 0.39867586346385747 0.13233442411732735; 0.8384208231964081 0.9058692768818796 … -0.5202888052133979 0.8970188134415277; … ; 0.46231412280292433 0.3676271516968003 … 0.2297944620278776 -0.6661576963787331; 0.9978504129072187 -0.03129026781410676 … 0.31417889198007826 -0.5967666688519689], [-0.37273379726813527 0.46132347547059865 … 0.415093838714105 -0.174375208545584; -0.03057367482196898 -0.010169545039784815 … -0.47757078175131945 0.12404746465730643; … ; 0.8848397172319797 0.5375386429632867 … -0.2051144317801741 -0.4460341026397715; 0.04781998480346561 0.9703052956413503 … 0.11027870955597914 -0.04301605770504792], [0.8900251332717147 0.018114276634369857 … 0.8177742114746199 0.9757463229949777; 0.544165208037539 0.42343527670139186 … -0.7079729568190076 -0.42422809294534936; … ; 0.05765697412969831 -0.7588823918477 … -0.9513793013813232 -0.5977353116871323; 0.04480850939597827 -0.2398511046263351 … -0.942937023375813 -0.8012609822815788]), dRx = [-0.03517313772470533, 0.07366778956454917, 0.009417618551463905, -0.07712425621921916, -0.01649797244639581, 0.028572535203132774, 0.08782928033480787], dRy = [0.05768780171966337, -0.06784818066128932, -0.018881478290988248, 0.06753079021596893, 0.01451145963882582, -0.019145229193916098, -0.09563390230639365], dLx = [-0.07048442946973842, 0.0669132459775599, 0.03082016509794863, -0.06191086890023378, -0.0164124422894309, 0.009447301503192482, 0.09482959226429813], dLy = [0.06426719068992891, -0.052710194499177784, -0.041678417656905054, 0.05168864901780026, 0.03606865191373165, -0.0005538449420849885, -0.0847269210959408], lgp = [-0.09960719144230305, -0.09740450813397157, -0.08865418294137561, -0.0912557740838546, -0.11384409581562173, -0.11461246263728875, -0.10918208258718387, -0.10993191010874097, -0.05522862223315871, -0.05479727313184823 … -0.08904863310607042, -0.08767685045976494, -0.06877552410816022, -0.07445679626450318, -0.06685729615085327, -0.06578278323313597, -0.056688978878228644, -0.054357859528141, -0.07390313201278023, -0.069628159261761], gpp = [-0.1476798829795693, 2.0641834849575624, 1.0850878850907344, 0.3586108702728936, -0.21762138671152154, -1.9304820344233866, -1.5434440970377554, -0.3752653882045476, 1.032109922387574, 1.95200900107319 … 2.6065157119206397, 1.8961661395815497, 0.2391254548175742, -2.964680945728466, -0.07630762871007563, -1.7819292693390556, -1.0609792659470145, 2.771162016558489, 1.658109438558435, -1.716325928823762], lgr = [0.03420694923646605, -0.11050603859449691, 0.05047049650764595, -0.13099506021931456, 0.0077715562824513485, -0.08595206684014987, 0.027809033211796914, -0.09988523737556786, 0.1695996109262984, -0.24403705288853492 … 0.04733354420705522, -0.10777198374448968, 0.03494558545623879, -0.09403942192571232, 0.015927813621445595, -0.0824245087300592, 0.008811232499534602, -0.072944336076994, 0.017269870008628587, -0.08552388991726448], gpr = [0.004161635573097439, 0.018471310815927823, -0.09036638998571221, -0.20470826521444896, 0.21790505347459801, -0.0964608228922139, 0.06281701025202226, 0.020229275053117026, -0.1538846294394402, -0.02477207940841689 … -0.14572555983194996, 0.03391716578016006, 0.14441592266032813, 0.015298525092532989, -0.008748790846277847, -0.14957859229394063, -0.13931581517041158, -0.05086394533526185, 0.1242672515007874, 0.12283501033527683])Now let's evaluate our fits by plotting the residuals
using Plots
residual(vlbimodel(post, xopt), dvis)These look reasonable, although there may be some minor overfitting. Let's compare our results to the ground truth values we know in this example. First, we will load the polarized truth
using AxisKeys
imgtrue = Comrade.load(joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/polarized_gaussian.fits"), StokesIntensityMap)2-dimensional KeyedArray(NamedDimsArray(...)) with keys:
↓ X ∈ 1024-element LinRange{Float64,...}
→ Y ∈ 1024-element LinRange{Float64,...}
And data, 1024×1024 NamedDimsArray(StructArray(::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}), (:X, :Y)):
… (4.8434e-10)
(-4.8434e-10) [6.86545e-65, 4.08459e-78, 1.02982e-65, 1.02982e-66]
(-4.83393e-10) [8.99558e-65, 5.35191e-78, 1.34934e-65, 1.34934e-66]
(-4.82446e-10) [1.17804e-64, 7.00873e-78, 1.76706e-65, 1.76706e-66]
(-4.815e-10) [1.54192e-64, 9.17361e-78, 2.31287e-65, 2.31287e-66]
(-4.80553e-10) … [2.01712e-64, 1.20008e-77, 3.02568e-65, 3.02568e-66]
(-4.79606e-10) [2.63738e-64, 1.56911e-77, 3.95607e-65, 3.95607e-66]
⋮ ⋱
(4.78659e-10) [3.44655e-64, 2.05052e-77, 5.16983e-65, 5.16983e-66]
(4.79606e-10) [2.63738e-64, 1.56911e-77, 3.95607e-65, 3.95607e-66]
(4.80553e-10) … [2.01712e-64, 1.20008e-77, 3.02568e-65, 3.02568e-66]
(4.815e-10) [1.54192e-64, 9.17361e-78, 2.31287e-65, 2.31287e-66]
(4.82446e-10) [1.17804e-64, 7.00873e-78, 1.76706e-65, 1.76706e-66]
(4.83393e-10) [8.99558e-65, 5.35191e-78, 1.34934e-65, 1.34934e-66]
(4.8434e-10) [6.86545e-65, 4.08459e-78, 1.02982e-65, 1.02982e-66]Select a reasonable zoom in of the image.
imgtruesub = imgtrue(Interval(-fovx/2, fovx/2), Interval(-fovy/2, fovy/2))
img = intensitymap!(copy(imgtruesub), skymodel(post, xopt))
#Plotting the results gives
import WGLMakie as CM
fig = CM.Figure(;resolution=(450, 350));
polimage(fig[1,1], imgtruesub,
axis=(xreversed=true, aspect=1, title="Truth", limits=((-20.0,20.0), (-20.0, 20.0))),
length_norm=1, plot_total=true, pcolormap=:RdBu,
pcolorrange=(-0.25, 0.25),)
polimage(fig[1,2], img,
axis=(xreversed=true, aspect=1, title="Recon.", limits=((-20.0,20.0), (-20.0, 20.0))),
length_norm=1, plot_total=true, pcolormap=:RdBu,
pcolorrange=(-0.25, 0.25),)
CM.Colorbar(fig[2,:], colormap=:RdBu, vertical=false, colorrange=(-0.25, 0.25), label="Signed Polarization Fraction sign(V)*|p|", flipaxis=false)
CM.colgap!(fig.layout, 3)
CM.rowgap!(fig.layout, 3)
fig